class DataArgs:
    def __init__(self):
        self.batch_size = 32
        self.num_workers = 4
        self.prefetch_factor = 2

class OptimArgs:
    def __init__(self):
        self.lr = 0.03
        self.betas = [0.9, 0.95]
        self.weight_decay = 0.1

class SchedulerArgs:
    def __init__(self):
        self.warmup_epochs = 1000
        self.max_epochs = 100000
        self.warmup_start_lr = 3e-7
        self.eta_min = 3e-7

class ModelArgs:
    def __init__(self):
        self.in_channels = 7
        self.local_in = 1
        self.local_out = 64
        self.global_in = 64
        self.global_out = 64
        self.input_size = 64
        self.hidden_size = 64
        self.site = 39
        self.fusion_hidden = 39 * 64
        self.meteor_hidden_size = 1024

class MetPolArgs:
    def __init__(self):
        self.seed = 2025
        self.lead_time = 1
        self.block_time = 6
        
        self.data = DataArgs()
        self.model = ModelArgs()
        self.optim = OptimArgs()
        self.scheduler = SchedulerArgs()
